The present invention relates to computer networks generally and more particularly to congestion control and avoidance in computer networks.
Various techniques are known for congestion control and avoidance in computer networks. Generally speaking congestion control is often effected as a last resort by xe2x80x9cload sheddingxe2x80x9d, which means that data packets are being discarded. Inasmuch as load shedding is extremely wasteful of network bandwidth resources as well as having a significantly negative impact on network performance, efforts have been made to avoid and control congestion without resorting to load shedding.
It is known to attempt to avoid congestion by allowing each node to begin data transmission with a single data segment, awaiting a timely acknowledgment and upon receipt thereof, allowing the node to transmit an increased number of data segments before awaiting a further acknowledgment, the data segments all being of the same size. For each successive received timely acknowledgment, the number of data segments transmitted subsequent thereto remains constant or is increased. The increase factor may be adaptive in response to sensed network congestion, in order to limit the load on the network. In certain cases, the increase factor may become negative or the transmission may be stopped for given intervals.
Various techniques are known whereby a network node controls the transmission rate of a sending node. Among others, routers send xe2x80x9cchokexe2x80x9d or xe2x80x9csource quenchxe2x80x9d packets to sending nodes in order to slow down their transmission rate.
However, the technique most widely used to restrain the transmission rate of a transmitting node is to drop its packets on route and have the sending node wait in vain for acknowledgment of their receipt. After expiry of a timeout for the acknowledgment, the transmission rate gradually returns to its previous level, preferably in a manner described hereinabove.
The following U.S. patents, the disclosures of which are hereby incorporated by reference, are believed to represent the state of the art in network congestion avoidance and control:
U.S. Pat. No. 4,161,778, Synchronization control system for firmware access of high data rate transfer bus;
U.S. Pat. No. 4,270,205, Serial line communication system;
U.S. Pat. No. 4,317,134, Method and apparatus for pattern noise correction;
U.S. Pat. No. 4,366,573, Method for synchronizing code machines which are operated within the framework of a block transmission network;
U.S. Pat. No. 4,439,859, Method and system for retransmitting incorrectly received numbered frames in a data transmission system;
U.S. Pat. No. 4,475,192, Data packet flow control scheme for switching networks;
U.S. Pat. No. 4,485,438, High transfer rate between multi-processor units;
U.S. Pat. No. 4,589,111, Arq equipped data communication system;
U.S. Pat. No. 4,677,616, Flow control scheme for a switching network;
U.S. Pat. No. 4,691,314, Method and apparatus for transmitting data in adjustable-sized packets;
U.S. Pat. No. 4,697,281, Cellular telephone data communication system and method;
U.S. Pat. No. 4,703,478, Burst-switching method for an integrated communications system;
U.S. Pat. No. 4,707,693, Through-traffic priority protocol in a communications system;
U.S. Pat. No. 4,712,214, Protocol for handling transmission errors over asynchronous communication lines;
U.S. Pat. No. 4,726,036, Digital adaptive filter for a high throughput digital adaptive processor;
U.S. Pat. No. 4,727,537, Flow control arrangement for the transmission of data packets to a communication network;
U.S. Pat. No. 4,730,348, Adaptive data compression system;
U.S. Pat. No. 4,745,593, Arrangement for testing packet switching networks;
U.S. Pat. No. 4,769,815, Packet flow control method;
U.S. Pat. No. 4,771,424, Routing control method in a packet switching network;
U.S. Pat. No. 4,809,212, High throughput extended-precision multiplier;
U.S. Pat. No. 4,839,891, Method for controlling data flow
U.S. Pat. No. 4,845,656, System for transferring data between memories in a data-processing apparatus having a bitblt unit;
U.S. Pat. No. 4,845,664, On-chip bit reordering structure;
U.S. Pat. No. 4,851,990, High performance processor interface between a single chip processor and off chip memory means having a dedicated and shared bus structure;
U.S. Pat. No. 4,852,088, Packet-at-a-time reporting in a data link controller;
U.S. Pat. No. 4,852,127, Universal protocol data receiver;
U.S. Pat. No. 4,855,905, Multiprotocol I/O communications controller unit including emulated I/O controllers and tables translation of common commands and device addresses;
U.S. Pat. No. 4,860,193, System for efficiently transferring data between a high speed channel and a low speed I/O device;
U.S. Pat. No. 4,862,461, Packet switch network protocol;
U.S. Pat. No. 4,864,567, High throughput data communication system;
U.S. Pat. No. 4,873,662, Information handling system and terminal apparatus;
U.S. Pat. No. 4,875,161, Scientific processor vector file organization;
U.S. Pat. No. 4,882,674, Apparatus and method for control of one computer system by another computer system;
U.S. Pat. No. 4,888,684, Multiprocessor bus protocol;
U.S. Pat. No. 4,888,812, Document image processing system;
U.S. Pat. No. 4,897,835, High capacity protocol with multistation capability;
U.S. Pat. No. 4,905,282, Feature negotiation protocol and dynamically adjustable retraining sequence for a high speed half duplex modem;
U.S. Pat. No. 4,907,225, Data protocol controller;
U.S. Pat. No. 4,908,828, Method for error free message reception;
U.S. Pat. No. 4,926,415, Local area network system for efficiently transferring messages of different sizes;
U.S. Pat. No. 4,927,288, Road traffic network;
U.S. Pat. No. 4,929,939, High-speed switching system with flexible protocol capability,
U.S. Pat. No. 4,930,159, Netbios name authentication;
U.S. Pat. No. 4,935,869, File transfer control method among a plurality of computer systems;
U.S. Pat. No. 4,939,731, Data transmission system with automatic repeat request;
U.S. Pat. No. 4,941,144, Data transmission device capable of adaptively varying a packet size without an increase in hardware;
U.S. Pat. No. 4,951,278, High-level data link control packet assembler/disassembler
U.S. Pat. No. 4,953,162, Multipath local area network;
U.S. Pat. No. 4,961,221 Communication method and system with encryption of information;
U.S. Pat. No. 4,964,046, Harvard architecture microprocessor with arithmetic operations and control tasks for data transfer handled simultaneously;
U.S. Pat. No. 4,965,794, Telecommunications FIFO;
U.S. Pat. No. 4,967,344, Interconnection network for multiple processors;
U.S. Pat. No. 4,977,498, Data processing system having a data memory interlock coherency scheme;
U.S. Pat. No. 4,989,204, High throughput communication method and system for a digital mobile station when crossing a zone boundary during a session;
U.S. Pat. No. 4,992,926, Peer-to-peer register exchange controller for industrial programmable controllers;
U.S. Pat. No. 4,999,769, System with plural clocks for bidirectional information exchange between DMA controller and I/O devices via DMA bus;
U.S. Pat. No. 5,008,663, Communications systems;
U.S. Pat. No. 5,008,879, LAN with interoperative multiple operational capabilities;
U.S. Pat. No. 5,010,553, xe2x80x9cHigh speed, error-free data transmissionxe2x80x9d system and method;
U.S. Pat. No. 5,014,186, Data-processing system having a packet transfer type input/output system;
U.S. Pat. No. 5,036,316, Method and apparatus for high speed linear shading in a raster graphics system;
U.S. Pat. No. 5,038,343, High speed digital packet switching system;
U.S. Pat. No. 5,042,029, Congestion control method and apparatus for end-to-end packet communication;
U.S. Pat. No. 5,053,987, Arithmetic unit in a vector signal processor using pipelined computational blocks;
U.S. Pat. No. 5,056,058, Communication protocol for predicting communication frame type in high-speed processing system;
U.S. Pat. No. 5,056,088, Apparatus and method for efficiently coupling digital signals to a communications medium in information packets;
U.S. Pat. No. 5,058,005, Computer system with high speed data transfer capabilities;
U.S. Pat. No. 5,058,110, Protocol processor;
U.S. Pat. No. 5,062,044, Temporary bus master for use in a digital system having asynchronously communicating sub-systems;
U.S. Pat. No. 5,063,494, Programmable data communications controller;
U.S. Pat. No. 5,065,314, Method and circuit for automatically communicating in two modes through a backplane;
U.S. Pat. No. 5,073,821, Orthogonal transform coding apparatus for reducing the amount of coded signals to be processed and transmitted;
U.S. Pat. No. 5,077,677, Probabilistic inference gate;
U.S. Pat. No. 5,077,732, LAN with dynamically selectable multiple operational capabilities;
U.S. Pat. No. 5,084,871, Flow control of messages in a local area network;
U.S. Pat. No. 5,084,877, High speed transport protocol;
U.S. Pat. No. 5,089,982, Two dimensional fast Fourier transform converter;
U.S. Pat. No. 5,097,331, Multiple block-size transform video coding using an asymmetric sub-band structure;
U.S. Pat. No. 5,103,447, High-speed ring LAN system;
U.S. Pat. No. 5,107,493, High-speed packet data network using serially connected packet and circuit switches;
U.S. Pat. No. 5,109,490, Data transfer using bus address lines;
U.S. Pat. No. 5,109,515, User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services;
U.S. Pat. No. 5,113,392, Communication apparatus for reassembling packets received from network into message;
U.S. Pat. No. 5,113,494, High speed raster image processor particularly suited for use in an image management system;
U.S. Pat. No. 5,113,514, System bus for multiprocessor computer system;
U.S. Pat. No. 5,115,429, Dynamic encoding rate control minimizes traffic congestion in a packet network;
U.S. Pat. No. 5,115,431, Method and apparatus for packet communications signaling;
U.S. Pat. No. 5,115,432, Communication architecture for high speed networking;
U.S. Pat. No. 5,117,429, Packet switch for a transfer of data in asynchronous mode in a digital transmission network;
U.S. Pat. No. 5,119,367, Method and a node circuit for routing bursty data;
U.S. Pat. No. 5,121,216, Adaptive transform coding of still images;
U.S. Pat. No. 5,121,390, Integrated data link controller with synchronous link interface and asynchronous host processor interface;
U.S. Pat. No. 5,121,479, Early start mode data transfer apparatus;
U.S. Pat. No. 5,122,685, Programmable application specific integrated circuit and logic cell;
U.S. Pat. No. 5,124,941, Bit-serial multipliers having low latency and high throughput;
U.S. Pat. No. 5,124,991, Error correction for infrared data communication;
U.S. Pat. No. 5,126,842, Video signal encoding method with a substantially constant amount of transform data per transmission unit block;
U.S. Pat. No. 5,136,584, Hardware interface to a high-speed multiplexed link;
U.S. Pat. No. 5,142,532, Communication system;
U.S. Pat. No. 5,168,497, Packet communication processing method;
U.S. Pat. No. 5,191,583, Method and apparatus for effecting efficient transmission of data;
U.S. Pat. No. 5,193,151, Delay-based congestion avoidance in computer networks;
U.S. Pat. No. 5,224,095, Network control system and method;
U.S. Pat. No. 5,239,545, Channel access control in a communication system;
U.S. Pat. No. 5,257,258, Least time to reach boundxe2x80x9d service policy for buffer systems;
U.S. Pat. No. 5,289,470, Flexible scheme for buffer space allocation in networking devices;
U.S. Pat. No. 5,303,344, Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer;
U.S. Pat. No. 5,303,347, Attribute based multiple data structures in host for network received traffic;
U.S. Pat. No. 5,307,348, Scheduling in a communication system;
U.S. Pat. No. 5,315,584, System of data transmission by sharing in the time-frequency space with channel organization;
U.S. Pat. No. 5,339,368, Document image compression system and method;
U.S. Pat. No. 5,355,485, First processor for dividing long argument data into packets and storing total packet count and packets in shared buffer for subsequent execution by second processor;
U.S. Pat. No. 5,377,332, Bus arbitration algorithm and apparatus;
U.S. Pat. No. 5,379,296, Method and apparatus for interfacing a workstation to a plurality of computer platforms;
U.S. Pat. No. 5,384,770, Packet assembler;
U.S. Pat. No. 5,384,780, High speed modem, method and system for achieving synchronous data compression;
U.S. Pat. No. 5,400,329, Packet network and method for congestion avoidance in packet networks;
U.S. Pat. No. 5,406,643, Method and apparatus for selecting between a plurality of communication paths;
U.S. Pat. No. 5,425,051, Radio frequency communication network having adaptive parameters;
U.S. Pat. No. 5,452,299, Optimized transfer of large object data blocks in a tele-conferencing system;
U.S. Pat. No. 5,457,680, Data gateway for mobile data radio terminals in a data communication network;
U.S. Pat. No. 5,477,531, Method and apparatus for testing a packet-based network;
U.S. Pat. No. 5,481,735, Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network;
U.S. Pat. No. 5,483,526, Resynchronization method and apparatus for local memory buffers management for an ATM adapter implementing credit based flow control;
U.S. Pat. No. 5,511,122, Intermediate network authentication;
U.S. Pat. No. 5,539,736, Method for providing LAN address discovery and terminal emulation for LAN-connected personal computer (PCs) using XEROX network system (XNS);
U.S. Pat. No. 5,541,919, Multimedia multiplexing device and method using dynamic packet segmentation;
U.S. Pat. No. 5,543,789, Computerized navigation system;
U.S. Pat. No. 5,561,806, Serial channel adapter;
U.S. Pat. No. 5,568,616, System and method for dynamic scheduling of 3D graphics rendering using virtual packet length reduction;
U.S. Pat. No. 5,570,346, Packet network transit delay measurement system;
U.S. Pat. No. 5,600,632, Methods and apparatus for performance monitoring using synchronized network analyzers;
U.S. Pat. No. 5,602,831, Optimizing packet size to eliminate effects of reception nulls;
U.S. Pat. No. 5,633,865, Apparatus for selectively transferring data packets between local area networks;
U.S. Pat. No. 5,633,867, Local memory buffers management for an ATM adapter implementing credit based flow control;
U.S. Pat. No. 5,664,075, Print job identification and synchronization between NetWare PServer and atlas RPrinter protocol gateway;
U.S. Pat. No. 5,671,430, Parallel data processing system with communication apparatus control;
U.S. Pat. No. 5,682,386, Data/voice/fax compression multiplexer;
U.S. Pat. No. 5,696,903, Hierarchical communications system using microlink, data rate switching, frequency hopping and vehicular local area networking;
U.S. Pat. No. 5,699,481, Timing recovery scheme for packet speech in multiplexing environment of voice with data applications;
U.S. Pat. No. 5,706,439, Method and system for matching packet size for efficient transmission over a serial bus; and
RE34034, Cellular telephone data communication system and method
The following publications are also considered to be relevant:
Lin, S., and Costello, D. J., Jr., Error Control Coding: Fundamentals and Applications. Englewood Cliffs, N. J.: Prentice-Hall, Inc., 1983, pp. 458-465;
Dighe, R., May, C. J., and Ramamurthy, G., xe2x80x9cCongestion Avoidance Strategies in Broadband Packet Networks,xe2x80x9d in Proc. IEEE INFOCOM ""91, Apr. 7-11, 1991, Bal Harbour, Fla., pp. 295-303;
Danthine, A., xe2x80x9cA New Transport Protocol for the Broadband Environment,xe2x80x9d IFIP Transactions C, vol. C-4, 1992, pp. 337-360; also, presented at IFIP TC6 Workshop, Estoril, Portugal, Jan. 20-22, 1992;
Watson, Richard, xe2x80x9cThe Delta-t Transport Protocol: Features and Experiencexe2x80x9d, Local Computer Networks, 1989 14th Conference. pp. 399-487;
Bocking, Stefan, xe2x80x9cTEMPO: A lightweight Transport Protocolxe2x80x9d, Future Trends of Distributed Computing Systems, ""91 Workshop. pp. 107-113;
Meister, Bernd, xe2x80x9cA Performance Study of the ISO Transport Protocolxe2x80x9d, IEEE Trans on Computers. vol. 40 No. 3 March 1991. pp. 253-262;
La Porta et al. xe2x80x9cArchitectures, Features and Implementations of High Speed Protocolsxe2x80x9d GLOBE Corn ""91: IEEE Global Telecommunications Conf pp. 1717-1721;
Comer et al, xe2x80x9cA rate-based Congestion Avoidance and Control Scheme for Packet Switched Networkxe2x80x9d; Proceeding the 10th International Conf. on Distributed Computing Systems. pp. 390-397;
Yavatker et al, xe2x80x9cReligram: xe2x80x94a communications abstraction for distributed processingxe2x80x9d Proc. of the Third IEEE Symposium on Parallel and Distributed Processes. pp. 361-368;
Long et al, xe2x80x9cProviding performance quarantees in an FDDI Network,xe2x80x9d Proceedings the 13th Intersational Conf. on Distributed Computing System. pp. 328-336;
xe2x80x9cNETBLT: A High Throughput Transport Protocolxe2x80x9d by Clark et al.; Laboratory for Computer Science, Massachusetts Institute of Technology; pp. 353-359;
xe2x80x9cGoodness definition and goodness measure for high speed transport protocols for lightweight networking applicationsxe2x80x9d by S. Isil, Lehigh University, 1992; pp. 1-213;
xe2x80x9cDesign and analysis of rate-based transport layer flow control protocolxe2x80x9d by C. Yee-Hsiang, Ph.D.; Illinois Institute of Technology, 1990; pp. -124;
xe2x80x9cA Survey of Light-Weight Transport Protocols for High-Speed Networksxe2x80x9d by Doeringer et al; Transaction on Communications, vol. 38, No. 11, November 1990; pp. 2025-2039;
xe2x80x9cCongestion Avoidance and Controlxe2x80x9d by Van Jacobson; University of California; Lawrence Berkeley Laboratory; pp. 314-329;
xe2x80x9cMaking Transport Protocols Fastxe2x80x9d by Alfred C. Weaver; Department of Computer Science, University of Virginia; pp. 295-300;
xe2x80x9cComparison of Error Control Protocols for High Bandwidth-Delay Product Networksxe2x80x9d by Feldmeier et al.; pp. 271-295;
xe2x80x9cDynamical Behavior of Rate-Based Flow Control Mechanismsxe2x80x9d by Bolot et al.; Department of Computer Science, University of Maryland; pp. 35-49;
C. L. Williamson, et al., Loss-Load Curves: Support for Rate-Based Congestion Control in High-Speed Datagram Networks, Communications Architecture and Protocols,-SIGCOMM ""91 Conference;
Computer Networks by A. S. Tannenbaum, 3rd Edition, 1996, Prentice-Hall, pp 374-395, Congestion Control Algorithms and pp. 536-539, TCP Congestion Control; 
The Performance of TCP over ATM ABR and UBR services by Xiangrong Cai. Published on the Internet at http://www.cis.ohio-state.edu/xcx9cjain/cis788-97/tcp_over_atm/index.htm;
Optimization of TCP segment size for file transfer by R. M. Bournas, IBM Journal of Research and Development, Vol. 41, No. 3xe2x80x94Performance analysis and its impact on design;
TCP/IP Illustrated, vol 1: The Protocols. pp. 229-233, 235-238, 301-316 of W. Richard Stevens, Addison-Wesley Professional Computing Series Edition of 94, 10th printing of July 97;
Random Early Detection gateways for Congestion Avoidance. IEEE/ACM Transactions on Networking, V.1.N.4, August 1993, pp 397-413 by Floyd S., and Jacobson, V;
A Taxonomy for Congestion Control Algorithms in Packet Switching Networks. by Cui-Qing Yang and Alapati V. S. Reddy. IEEE Network Magazine July/August 1995, Vol. 9, Num. 5;
Request for Comments 879xe2x80x94The TCP Maximum Segment Size and Related Topics 1983;
Request for Comments 896xe2x80x94Congestion Control in IP/TCP internetworks, 1984;
Promoting the End-to-End Congestion Control in the Internet. S. Floyd and K. Fall. of Network Research Group of Lawrence Berkeley National Laboratory, Berkeley, Calif. Submitted to the IEEE/ACM Transactions on Networking, Feb. 10, 1998;
Request for Comments 1812xe2x80x94Requirements for IP Version 4 Routers. PP. 94-96, 1995;
TCP Vegas: New Techniques for Congestion Detection and Avoidance by L. S. Brakmo, S. W. O""Malley, and L. L. Peterson. Proceedings SIGCOMM 94 Conf. ACM; and
Increasing TCP""s Initial Windows by S. Floyd, M. Allman, C. Partridge Internet Engineering Task Force, INTERNET DRAFT, July 97;
The Macroscopic Behavior of the TCP Congestion Avoidance Algorithms. M. Mathis, J. Senke, J. Mahdavi of Pittsburgh Supercomputing Center and T. Ott of Bellcore. Computer Communication Review, a publication of ACM SIGCOMM, vol. 27, number 3, July 1997, ISSN# 0146-4833;
Modeling TCP Throughput: A Simple Model and its Empirical Validation. J. Padhye, V. Firoin, D. Towsley, J. Kurose, Department of Computer Sciences, University of Massachusetts, CMPSI Technical Report TR-98-008. ftp://ftp.cs.umass.edu/pbu/techrep/techreport/1998/um-cs-1998-008.ps.
The present invention seeks to provide improved congestion control and avoidance in computer networks.
There is thus provided in accordance with a preferred embodiment of the present invention a method for congestion control and avoidance in computer networks including the steps of:
sensing network congestion; and
allowing a network node to transmit at least one basic data segment and thereafter to transmit additional data, the quantity of said additional data being a function of the basic data segment,
wherein the size of the basic data segment is determined at least in part by sensed network congestion.
The term xe2x80x9csensing network congestionxe2x80x9d is used throughout the specification and claims in a broad sense to mean inter alia sensing and predicting possible future network congestion. Prediction of possible future network congestion is possible, for example, by learning from a history of network load and/or by detecting an increase in the number of users or other indications. When possible future network congestion is predicted, the application of the methods and apparatus described herein is operative to prevent the development of future congestion altogether or at least to limit the evolving severity level that such future congestion would have otherwise reached Controlling the transmission rate of network nodes is an important technique to help prevent future congestion altogether and/or to limit the severity of such congestion.
There is also provided in accordance with a preferred embodiment of the present invention apparatus for congestion control and avoidance in computer networks including:
a network congestion sensor; and
a node transmission controller, allowing a network node to transmit a basic data segment and thereafter to transmit additional data, the quantity of which is a function of the basic data segment,
wherein the size of the basic data segment is determined at least in part by sensed network congestion.
There is additionally provided in accordance with a preferred embodiment of the present invention, a method for congestion control and avoidance in computer networks including the steps of:
indicating possible future network congestion; and
allowing a network node to transmit a basic data segment having a size, and thereafter to transmit additional data, the quantity of which is a function of the basic data segment,
wherein the size of the basic data segment is determined at least in part so as to reduce anticipated future network congestion.
There is further provided in accordance with a preferred embodiment of the present invention, apparatus for congestion control and avoidance in computer networks including:
a future network congestion predictor; and
a node transmission controller, allowing a network node to transmit a basic data segment and thereafter to transmit additional data, the quantity of which is a function of the basic data segment,
wherein the size of the basic data segment is determined at least in part to avoid predicted future congestion.
The phrase xe2x80x9cdata segmentxe2x80x9d, as used throughout the specification and claims, is commonly used within the TCP/IP protocol environment but it is not intended to limit the present invention to that environment through the use of this phase. Accordingly, the phrase xe2x80x9cdata segmentxe2x80x9d in the specification and claims is to be understood in a sense not limited to the TCP/IP protocol environment.
In accordance with one embodiment of the invention, the size of the basic data segment is limited by an intermediate node, such as a router or switch, which provides to a transmitting node false information regarding a maximum basic data segment size that a receiving node wishes to receive, in response to sensed congestion.
The terms xe2x80x9crouterxe2x80x9d and xe2x80x9cswitchxe2x80x9d are used throughout the specification and claims in a broad sense to mean any suitable intermediate node, such as a router, switch or firewall, bandwidth management device or traffic shapper device which is not the final destination of the data.
In accordance with another embodiment of the invention, the size of the basic data segment is determined by a sending node which senses congestion between itself and a receiving node and adjusts the basic data segment size in response to sensed congestion.
In accordance with another embodiment of the invention, the size of the basic data segment is limited by a receiving node which provides to the sending node information regarding maximum basic data segment size that it wishes to receive in response to sensed congestion.
In accordance with yet another embodiment of the invention, the size of the basic data segment is determined by a sending node which receives information from an external indicator, which may be a congestion indicator and/or a network management device and adjusts the basic data segment size in response to the information received.
In accordance with another embodiment of the invention, the size of the basic data segment is determined by a sending node which receives congestion information from a router or other intermediate node via the receiving node and adjusts the basic data segment size in response to the received congestion information.
There is thus provided in accordance with a preferred embodiment of the present invention a method for controlling the transmission rate of a network node including the steps of:
Allowing a network node to transmit at least one basic data segment having a size and thereafter to transmit additional data, the quantity of said additional data being a function of the size of the basic data segment,
Wherein the size of the basic data segment is determined at least in part by an intermediate node such as a router or a switch or a bandwidth management device disposed between the communicating nodes in a network, which provides to the transmitting node false information regarding a maximum basic data segment size that a receiving node wishes to receive.
In accordance with a preferred embodiment of the present invention the present invention is embodied in a TCP/IP protocol and varies the size of the basic data segment employed therein. According to the TCP/IP protocol, the TCP basic data segment is bound in size by the size indicated in the Maximum Segment Size (MSS) field which may be contained in the SYN segment that is provided by the receiving node to the data sending node. The inclusion of the MSS field in the SYN segment is optional. If the MSS option is not employed, the sending node employs a predetermined segment size.